﻿#region Header

/*
Remote views based on linq
By

Pascal Hauser 
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

and

Raphael Gfeller
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

*/

#endregion

#region Usings

using System;
using System.ServiceModel;

#endregion

namespace Sebarf.Core.Interfaces {
	/// <summary>
	/// The main functionality of the Sebarf framework. Process requests.
	/// </summary>
	[ServiceContract]
	public interface IRequestHandlerEngine {
		#region Public Methods

		/// <summary>
		/// Processes the given request on the server
		/// </summary>
		/// <param name="request"></param>
		/// <returns></returns>
		[OperationContract]
		[NetDataContractFormat]
		[FaultContract(typeof(Exception))]
		object Process(IRequest request);

		#endregion
	}
}